package net.jalisq.builder.joins;


import net.jalisq.builder.Select;

public enum OnJoinType implements IJoinType {
	JOIN,
	
	INNER_JOIN {
	
		@Override
		public String toKeyword() {
			return "INNER JOIN";
		}
	},
	
	STRAIGHT_JOIN, 
	CROSS_JOIN {
			@Override
			public String toKeyword() {
				return "CROSS JOIN";
			}
	},
	
	LEFT_JOIN {
		@Override
		public String toKeyword() {
			return "LEFT JOIN";
		}
	}
	,
	RIGHT_JOIN {
		@Override
		public String toKeyword() {
			return "RIGHT JOIN";
		}
	}
	,

	LEFT_OUTER_JOIN {
		@Override
		public String toKeyword() {
			return "LEFT OUTER JOIN";
		}
	}
	,
	RIGHT_OUTER_JOIN
	{
		@Override
		public String toKeyword() {
			return "RIGHT OUTER JOIN";
		}
	}
	
	;
	
	public final OnJoin makeJoin(Select select ,On on){
		return new JoinImpl(this, select, on);
	}
	public String toKeyword() {
		return toString();
	}
	public String getName() {
		return name().toString();
	}
}
